//类和对象
//Java中，一切皆对象。对象是实体，类是用来描述对象的。

//面向过程与面向对象
//面向过程：注重过程的实现；
//面向对象：完成一件事情，靠的是对象与对象之间的协作（对象之间的交互）。
//1.找对象（描述对象）；2.创建对象（实例化对象）；3.使用对象

//定义好了一个类，这个类就相当于一个自定义类型

public class Test {
    public static void main(String[] args) {
        Date date1 = new Date();//此处调用了构造方法，
        //实例化一个对象时，对象的产生有两步是必须的：
        //1.为对象分配内存；2.调用合适的构造方法。
        // 一般编译器会默认提供一个不带参数的构造方法，但救急不救穷
        date1.printDate();

        System.out.println("===================");

        Date date2 = new Date(2022, 4, 23);
        date2.printDate();      //调用有参构造方法
    }





    public static void main2(String[] args) {
        Date date1 = new Date();
        date1.setDate(2024, 11, 13);
        date1.printDate();

        Date date2 = new Date();
        date1.setDate(2023, 11, 13);
        date1.printDate();
    }





    public static void main1(String[] args) {
        int a;

        //由类来创建对象的过程，叫做类的实例化。
        //Student stu = new Student();

        Dog dog1 = new Dog();//通过new关键字创建出了Dog这个对象的实体
           //引用  //对象的实体
        dog1.name = "小黑";//访问对象的成员通过对象的引用 + . 来进行访问
        dog1.color = "黑色";
        dog1.bark();//访问对象的方法
        dog1.wag();

        Dog dog2 = new Dog();//通过new关键字可以实例化多个对象，同时分配多块内存
        dog2.name = "小乖";
        dog2.color = "白色";
        dog2.bark();
        dog2.wag();

        //Dog dog3 = new Dog();//每次new都会产生新的对象
        //Dog dog4 = new Dog();//同一个类创建的对象都包含相同的属性和方法
    }
}
